57d30ead16611bed824d1fe10da79a5a02fb32ac,bundles/extensions/models/impl/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java,ModelAdapterFactory,createObject,#Object#ModelClass#Result#,473
Before Change
InjectCallback callback = new SetFieldCallback(object);
Set<Field> requiredFields = new HashSet<Field>();
InjectableField[] injectableFields = modelClass.getInjectableFields();
for (InjectableField field : injectableFields) {
if (!injectElement(field, adaptable, modelClass.getModelAnnotation(), registry, callback, result)) {
requiredFields.add(field.getField());
}
}
registry.seal();
if (!requiredFields.isEmpty()) {
result.addFailure(FailureType.MISSING_FIELDS, requiredFields, modelClass.getType());
return null;
}
try {
invokePostConstruct(object);
return object;
} catch (InvocationTargetException e) {
result.addFailure(FailureType.FAILED_CALLING_POST_CONSTRUCT, e.getCause());
return null;
} catch (IllegalAccessException e) {
result.addFailure(FailureType.FAILED_CALLING_POST_CONSTRUCT, e);
return null;
After Change
InjectableField[] injectableFields = modelClass.getInjectableFields();
MissingElementsException missingElements = new MissingElementsException("Could not inject all required fields into " + modelClass.getType());
for (InjectableField field : injectableFields) {
RuntimeException t = injectElement(field, adaptable, modelClass.getModelAnnotation(), registry, callback);
if (t != null) {
missingElements.addMissingElementExceptions(new MissingElementException(field.getAnnotatedElement(), t));
}
}